package com.itheima.d3_regex;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

/*
目标：使用正则表达式爬取字符串中的满足要求的数据
需求：请把下面文本中的电话，邮箱，座机号码，热线都爬取出来。
 */
public class Demo4 {
    public static void main(String[] args) {
        String data = " 来黑马程序员学习Java，\n" +
                "        电话：18666688881，18699997777\n" +
                "        或者联系邮箱：boniu@itcast.cn，\n" +
                "        座机电话：01036517895，010-98951256\n" +
                "        邮箱：bozai@itcast.cn，\n" +
                "        邮箱：dlei0009@163.com，\n" +
                "        热线电话：400-618-9090 ，400-618-4000，4006184000，4006189090";
        //定义正则规则
        String regex = "(\\w+@\\w{2,10}(\\.\\w{2,10}){1,2})|(1[3-9]\\d{9})|(0\\d{2,5}-?\\d{5,15})|400-?\\d{3,8}-?\\d{3,8}";

        //1.需要爬取内容，就要将正则字符串变成一个正则对象（Pattern对象）
        Pattern pattern = Pattern.compile(regex);

        //2.获取一个Matcher匹配器，它可以利用正则规则，从目标字符串中寻找符合正则规则的字符串
        Matcher matcher = pattern.matcher(data);

        //3.一旦获取到matcher对象，它就可以利用pattern具备的规则，在data字符串中不断寻找需要的内容
        //过程：先判断后获取，判断/寻找：find()方法：在data字符串中从前往后找，找到了就返回true，直至data全部找完
        while (matcher.find()) {
            //4.条件成立，说明找到了一个，获取出数据：group方法
            String str = matcher.group();
            System.out.println("查询到的内容：" + str);
        }
    }
}
